package com.zzl.mine.dao.system;

import java.util.List;

import com.zzl.mine.pojo.page.Page;
import com.zzl.mine.pojo.page.PageData;
import com.zzl.mine.pojo.system.User;

/**
 * @description 用户Mapper
 * @author rambo
 * @date 2018年6月23日 下午2:55:20
 */
public interface UserMapper {
	
	/**
	 * getUserByNameAndPwd
	 * @description 登录判断
	 * @param pd
	 * @return
	 */
	PageData getUserInfo(PageData pd);
	
	/**
	 * @description 更新登录时间
	 * @param pd
	 * @return
	 */
	Integer updateLastLogin(PageData pd);
	
	/**
	 * TODO 主键是整型不是字符串
	 * @description 通过用户ID获取用户信息和角色信息
	 * @param USER_ID
	 * @return
	 */
	User getUserAndRoleById(String USER_ID);
	
	/**
	 * @description 通过USERNAEME获取数据
	 * @param pd
	 * @return
	 */
	PageData findByUsername(PageData pd);
	
	/**
	 * @description 列出某角色下的所有用户
	 * @param pd
	 * @return
	 */
	List<PageData> listAllUserByRoldId(PageData pd);
	
	/**
	 * @description 保存用户IP
	 * @param pd
	 * @return
	 */
	Integer saveIP(PageData pd);
	
	/**
	 * @description 用户列表
	 * @param page
	 * @return
	 */
	List<PageData> userListPage(Page page);
	
	/**
	 * @description 通过邮箱获取数据
	 * @param pd
	 * @return
	 */
	PageData findByUE(PageData pd);
	
	/**
	 * @description 通过编号获取数据
	 * @param pd
	 * @return
	 */
	PageData findByUN(PageData pd);
	
	/**
	 * @description 通过id获取数据
	 * @param pd
	 * @return
	 */
	PageData findById(PageData pd);
	
	/**
	 * @description 通过id获取数据
	 * @param USER_ID
	 * @return
	 */
	User selectById(Integer USER_ID);
	
	/**
	 * @description 保存用户
	 * @param pd
	 * @return
	 */
	Integer saveU(PageData pd);
	
	/**
	 * @description 修改用户
	 * @param pd
	 * @return
	 */
	Integer editU(PageData pd);
	
	/**
	 * @description 删除用户
	 * @param pd
	 * @return
	 */
	Integer deleteU(PageData pd);
	
	/**
	 * TODO 主键是整型不是字符串
	 * @description 批量删除用户
	 * @param USER_IDS
	 * @return
	 */
	Integer deleteAllU(String[] USER_IDS);
	
	/**
	 * @description 用户列表(全部)
	 * @param pd
	 * @return
	 */
	List<PageData> listAllUser(PageData pd);
	
	/**
	 * @description 获取总数
	 * @return
	 */
	PageData getUserCount();
	
	/**
	 * @description 获取所有用户
	 * @return
	 */
	List<User> getListUser();
	
	
}
